import axios from "@/api/axios"
import mockAxios from "@/api/mockAxios"
// import { create } from "core-js/core/object";


// 封装请求的一系列 api 方法

/**
 * 请求获取 首页 三级分类列表
 * @returns Promsie
 */
export const ReqGetBaseCategoryList = () => axios.get("/api/product/getBaseCategoryList");

/**
 * 请求 首页轮播图数据
 * @returns Promise
 */
export const ReqGetSlideList = () => mockAxios.get("/slide")

/**
 * 请求 首页楼层数据
 * @returns Promise
 */
export const ReqGetFloorList = () => mockAxios.get("/floor")

/**
 * 搜索商品数据
 * @param {*} params 
 * @returns Promsie
 */
export const ReqGetGoods = (params) => axios.post("/api/list", params)


/**
 * 请求获取商品详情信息
 * @param {*} id number
 * @returns Promise
 */
export const ReqGetGoodsDetail = (id) => axios.get(`/api/item/${id}`);

/**
 * 请求添加到购物车
 * @param {*} skuId    string
 * @param {*} skuNum   string
 * @returns Promise
 */
export const ReqAddToCart = (skuId,skuNum) => axios.post(`/api/cart/addToCart/${skuId}/${skuNum}`)


/**
 * 请求获取购物车列表
 *  @returns Promise
 */
export const ReqGetCartList = () => axios.get("/api/cart/cartList");


/**
 * 请求更新单个  商品的选中状态
 * @param {*} skuID   商品id  
 * @param {*} isChecked 商品选中状态
 * @returns Promise
 */
export const ReqcheckOneCart = (skuID,isChecked) => axios.get(`/api/cart/checkCart/${skuID}/${isChecked}`)


/**
 * 请求 购物车 全选与取消全选
 * @param {*} skuIdList   array  商品id列表
 * @param {*} isChecked   最新的状态 0取消选中 1代表选中
 * @returns Promise
 */
export const ReqBatchCheckCart = (skuIdList,isChecked) => axios.post(`/api/cart/batchCheckCart/${isChecked}`,skuIdList)


/**
 * 请求删除单个购物车商品
 * @param {*} skuId   
 * @returns Promise
 */
export const ReqDeteleOneCart = (skuId) => axios.delete(`/api/cart/deleteCart/${skuId}`)


/**
 * 批量删除选中的商品
 * @param {*} skuIdList 数组
 * @returns Promise
 */
export const ReqBatchDeleteCart = (skuIdList) => axios.post("/api/cart/batchDeleteCart",skuIdList)


/**
 * 请求获取验证码
 * @param {*} phone  手机号  string
 * @returns Promise
 */
export const ReqGetCode = (phone) => axios.get(`/api/user/passport/sendCode/${phone}`)


/**
 * 请求注册 
 * @param {*} params  {phone,password,code}
 * @returns  Promise
 */
export const ReqRegister = (params) => axios.post("/api/user/passport/register",params)


/**
 * 请求登录
 * @param {*} params {phone,password}
 * @returns Promise
 */
export const ReqLogin = (params) => axios.post("/api/user/passport/login",params)


/**
 * 请求获取用户信息
 * @returns   Promise
 */         
export const ReqGetUserInfo = () =>axios.get("/api/user/passport/auth/getUserInfo")


/**
 * 退出登录
 * @returns  Promise
 */
export const ReqLogout = () => axios.get("/api/user/passport/logout")


/**
 * 请求获取用户 收货地址
 * @returns Promise
 */
export const ReqGetUserAddressList = () => mockAxios.get("/api/user/userAddress/auth/findUserAddressList")


/**
 * 获取交易页购买商品列表信息
 * @returns Promise
 */
export const ReqGetTrade = () => axios.get("/api/order/auth/trade")



/**
 * 请求 提交订单
 * @param {*} tradeNo   交易编号  string
 * @param {*} params 请求体参数
 * @returns Promise
 */
export const ReqSunmitOrder = (tradeNo,params) => axios.post(`/api/order/auth/submitOrder?tradeNo=${tradeNo}`,params)


/**
 * 请求获取支付信息
 * @param {} orderId   订单编号 id
 * @returns Promise
 */
export const ReqPayment = (orderId) => axios.get(`/api/payment/weixin/createNative/${orderId}`)


/**
 * 请求查询 支付状态
 * @param {*} orderId 订单编号 id
 * @returns Promise
 */
export const ReqQueryPayStatus = (orderId) => axios.get(`/api/payment/weixin/queryPayStatus/${orderId}`)


/**
 * 请求获取我的订单
 * @param {*} page   当前页码  
 * @param {*} limit   每页展示数量
 * @returns Promise
 */
export const ReqGetMyOrder = (page,limit) => axios.get(`/api/order/auth/${page}/${limit}`)